The present invention relates to an adaptive quantization controller used in coding a moving picture, and particularly to an adaptive quantization controller which divides a frame into plural blocks, performs a coding process including a quantization process on each block, and determines a quantizing step to be used in the quantization adaptively according to a property of an image signal in a block.
In a moving picture coding technique, it is widely known to perform an adaptive quantization process which divides a frame into plural blocks and changes a quantizing step according to a characteristic value of an image signal in a block when performing a quantization process on an image signal in a block or on an orthogonally transformed in-block image signal. Generally, such a technique uses the variance of luminance in a block as the characteristic value, takes a large quantizing step in a block having a large luminance variance, and takes a small quantizing step in a block having a small luminance variance. This technique utilizes such a visual characteristic (masking effect) that noises are difficult to detect in an area of complicated texture. This control method aims at improving a subjective image quality and sometimes deteriorates a signal-to-noise ratio (S/N ratio) which is an objective evaluation scale.
As one of such conventional adaptive quantization techniques, there is a method described, for example, in ISO-IEC/JTC1/SC29/WG11/NO.400 Test Model 5. This is an encoder model used in a standardizing work of ISO/IEC 13818-2 (MPEG2 Video). In a method described in the above reference document, as represented by the following expression, a quantizing step (Mquant) for each block is determined by modifying a reference quantizing step (Qj) determined on the basis of a bit-rate control by means of a characteristic value (activity: act) obtained from an image. EQU Mquant=Qj.times.{2.times.act+avg(act)}.div.{act+2.times.avg(act)}(1)
Here, activity (act) is defined as a luminance variance of pixels in a block. And avg(act) is the average value of activities (act) in the previous frame.
According to this, a large quantizing step Mquant is taken in an area having a large activity (act) and a small quantizing step Mquant is taken in an area having a small activity (act). Depending upon the activity (act), this expression varies the reference quantizing step size (Qj) within a range of 0.5 to 2 times.
Hereupon, since computation of said expression (1) includes many operations of multiplication and division, its processing circuit becomes more complicated. That is to say, a multiplier and a reciprocal number table are needed or the control becomes complicated in performing multiplication and division by means of repetition of addition and subtraction.
FIG. 5 shows a configuration example of such conventional adaptive quantization controllers. In FIG. 5, first, an adder 501 computes the sum of the activity (act) of an objective block and twice the average value of the activities all over one frame (2.times.avg(act)). The doubling operation can be realized by shifting each bit position. And an adder 502 computes the sum of twice the activity (2.times.act) and the average value of the activities all over the previous frame (avg(act)). Next, a reciprocal converter 503 outputs the inverse number of the output of the adder 501. A multiplier 504 computes and outputs the product of the output of the adder 502 and the output of said reciprocal converter 503. And then a multiplier 505 computes the product of the output of said multiplier 504 and a specified reference quantizing step Qj, and outputs the quantizing step Mquant of the objective block. As described above, since this configuration needs multipliers, a reciprocal conversion table and the like, its circuit becomes large in scale.
As another method for computing a quantizing step different from this method, there is a method described in Japanese laid-open publication Tokkaihei No.5-137132. This technique classifies blocks into categories according to activity (act) values or other characteristic quantities (error activity and the like) and determines a quantizing step Mquant corresponding to its category, and thus dispenses with the use of multiplication and division.
FIG. 6 shows a configuration example of an adaptive quantization controllers described in this reference document. First, a category determining circuit 601 classifies blocks into five categories on the basis of activity values or other characteristic values (error activity and the like) of an image. Next, a quantizing step converting circuit 602 converts an obtained category number and a reference quantizing step determined from a bit-rate control into a quantizing step Mquant of each block to be used in an actual quantization process. This technique needs a circuit for performing category classification, a circuit for determining a quantizing step Mquant on the basis of the category and a reference quantizing step Qj. Therefore, this technique cannot sufficiently reduce its circuit size.